/**
 * 
 */
package mm.back.dao.impl;

import genericos.dao.exeptions.PersistanceException;
import genericos.dao.exeptions.PersistenceServiceException;
import mm.back.dao.DevolucionDAO;
import mm.back.dao.MMAbstractDAO;
import mm.back.entity.Devolucion;
import mm.exceptions.MMGenericException;

import org.hibernate.HibernateException;

/**
 * @author PUSDERKIS
 *
 */
public class DevolucionDAOImpl extends MMAbstractDAO implements DevolucionDAO {

	/**
	 * @see DevolucionDAO#registrarDevolucion(Devolucion)
	 */
	public void registrarDevolucion(Devolucion devolucion)
			throws MMGenericException {
		
		
		try{
			if (logger.isDebugEnabled()){
				logger.debug("Se intenta guardar el la devolucion...");
			}

			universalHibernateDAO.getHibernateSession().persist(devolucion);
			
			if(logger.isDebugEnabled()){
				logger.debug("Devolucion guardada correctamente. ID: "+devolucion.getId());
			}
			
		} catch (PersistenceServiceException e) {
			logger.error("Fallo al guardar la devolucion en la base de datos.",e);
			throw new MMGenericException(e.getMessage(),e);
		} catch (HibernateException e) {
			logger.error("Fallo al guardar la devolucion en la base de datos.",e);
			throw new MMGenericException(e.getMessage(),e);
		} catch (PersistanceException e) {
			logger.error("Fallo al guardar la devolucion en la base de datos.",e);
			throw new MMGenericException(e.getMessage(),e);
		}
		
	}

	

	
}
